home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 21
/
AACD 21.iso
/
AACD
/
Programming
/
amigatalk
/
intuition
/
GadgetArray.st
< prev
next >
Wrap
Text File
|
2000-05-02
|
9KB
|
201 lines
"--------------------------------------------------------"
" GadgetArray Class is Amiga composite Gadget assemblies."
" The methods for the Gadget Classes have changed, so "
" this file needs a lot of re-work! "
"--------------------------------------------------------"
Class GadgetArray :Array
! numGadgets arrayName !
[
readInGadgetArray: fileName number: howMany
! index tempGadget gt ng le te w h fl act theFile iName !
theFile <- File new.
theFile stringMode.
theFile open: fileName for: 'r'.
index <- 1.
[index <= howMany]
whileTrue: [iName <- (arrayName,index).
ng <- (theFile read).
le <- ((theFile read) asInteger).
te <- ((theFile read) asInteger).
w <- ((theFile read) asInteger).
h <- ((theFile read) asInteger).
fl <- ((theFile read) asInteger).
act <- ((theFile read) asInteger).
gt <- ((theFile read) asInteger).
((gt bitAnd: 16rF) == 4) "a StrGadget:"
ifTrue: [tempGadget <- StrGadget new].
((gt bitAnd: 16rF) == 3) "a PropGadget:"
ifTrue: [tempGadget <- PropGadget new]
ifFalse: [tempGadget <- BoolGadget new].
tempGadget setNextGadgetName: iName to: ng.
tempGadget setLeftEdge: iName to: le.
tempGadget setTopEdge: iName to: te.
tempGadget setWidth: iName to: w.
tempGadget setHeight: iName to: h.
tempGadget setFlags: iName to: fl.
tempGadget setActivation: iName to: act.
tempGadget setGadgetType: iName to: gt.
tempGadget setRenderName: iName to: (theFile read).
tempGadget setSelectName: iName to: (theFile read).
tempGadget setITextName: iName to: (theFile read).
tempGadget setGadgetID: iName
to: ((theFile read) asInteger).
((gt bitAnd: 16rF) == 4) "a StrGadget:"
ifTrue: [tempGadget changeBufferSize: iName
toSize: ((theFile read) asInteger)
].
((gt bitAnd: 16rF) == 3) "a PropGadget:"
ifTrue: [:f :h :v :hb :vb |
f <- ((theFile read) asInteger).
h <- ((theFile read) asInteger).
v <- ((theFile read) asInteger).
hb <- ((theFile read) asInteger).
vb <- ((theFile read) asInteger).
tempGadget setProps: iName
flags: f
hPot: h vPot: v
hBody: hb vBody: vb
].
index <- index + 1
].
^ numGadgets <- index
|
writeOutGadgetArray: fileName number: howMany
! index gType theFile gadg iName !
theFile <- File new.
theFile stringMode.
theFile open: fileName for: 'w'.
index <- 1.
[index <= howMany]
whileTrue: [iName <- (arrayName,index).
gadg <- Gadget new.
gType <- (gadg gadgetTypeIs: iName).
((gType bitAnd: 16rF) == 1)
ifTrue: [gadg <- BoolGadget new].
((gType bitAnd: 16rF) == 4)
ifTrue: [gadg <- StrGadget new]
ifFalse: [gadg <- PropGadget new].
theFile write: (gadg getNextGadgetName: iName).
theFile write: (gadg getLeftEdge: iName).
theFile write: (gadg getTopEdge: iName).
theFile write: (gadg getWidth: iName).
theFile write: (gadg getHeight: iName).
theFile write: (gadg getFlags: iName).
theFile write: (gadg getActivation: iName).
theFile write: (gadg getGadgetType: iName).
theFile write: (gadg getRenderName: iName).
theFile write: (gadg getSelectName: iName).
theFile write: (gadg getITextName: iName).
theFile write: (gadg getGadgetID: iName).
((gType bitAnd: 16rF) == 4) "a StrGadget:"
ifTrue: [theFile write: (gadg getBufferSize: iName)].
((gType bitAnd: 16rF) == 3) "a PropGadget:"
ifTrue: [theFile write: (gadg getPropFlags: iName).
theFile write: (gadg getHPot: iName).
theFile write: (gadg getVPot: iName).
theFile write: (gadg getHBody: iName).
theFile write: (gadg getVBody: iName)
].
index <- index + 1
].
^ numGadgets <- index
|
makeGadgetArray: howMany
! index tempGadget nextName render !
arrayName <- Array new: howMany.
render <- Border new.
render initialize: (arrayName,'Bdr')
withArray: #( 0 0 1 0 1 5
#(0 0 20 0 20 5 20 0 0 0) 'NULL').
index <- 1.
[index <= howMany]
whileTrue: [tempGadget <- BoolGadget new.
(index < howMany)
ifTrue: [nextName <- (arrayName,(index + 1))]
ifFlalse: [nextName <- 'NULL'].
tempGadget initialize: (arrayName,index)
withArray: #(nextName (20 * index)
(5 * index) 20 5 0 1 1
render render 'NULL' index).
index <- index + 1
].
^ numGadgets <- howMany
|
registerAll: howMany to: windowTitle
! index iName tempGadget gType !
index <- 1.
[index <= howMany]
whileTrue: [iName <- (arrayName,index).
tempGadget <- Gadget new.
gType <- (tempGadget gadgetTypeIs: iName).
((gType bitAnd: 16rF) == 1)
ifTrue: [tempGadget <- BoolGadget new].
((gType bitAnd: 16rF) == 4)
ifTrue: [tempGadget <- StrGadget new]
ifFalse: [tempGadget <- PropGadget new].
tempGadget register: iName for: windowTitle.
index <- index + 1
].
^ numGadgets <- index
|
moveGadgetArrayTo: newPoint
! dx dy index tGadg gType iName !
dx <- newPoint x.
dy <- newPoint y.
tGadg <- Gadget new.
index <- 1.
iName <- (arrayName,index).
gType <- tGadg gadgetTypeIs: iName.
((gType bitAnd: 16rF) == 1)
ifTrue: [tGadg <- BoolGadget new].
((gType bitAnd: 16rF) == 4)
ifTrue: [tGadg <- StrGadget new]
ifFalse: [tGadg <- PropGadget new].
[(tGadg getGadgetID: iName) notNil]
whileTrue: [tGadg setStartPoint: iName
x: (tGadg getLeftEdge: iName + dx)
y: (tGadg getTopEdge: iName + dy).
index <- index + 1.
iName <- (arrayName,index).
gType <- tGadg getGadgetType: iName.
((gType bitAnd: 16rF) == 1)
ifTrue: [tGadg <- BoolGadget new].
((gType bitAnd: 16rF) == 4)
ifTrue: [tGadg <- StrGadget new]
ifFalse: [tGadg <- PropGadget new].
].
^ numGadgets <- index
|
new: newArrayName
arrayName <- newArrayName.
numGadgets <- 0.
^ self
]